﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ODP.Model;
using ODP.Enum;
using ODP.Com;

namespace ODP.Interface
{
    public interface IAPI
    {
        /// <summary>
        /// 获取当前登录用户及其所关注用户的最新微博
        /// </summary>
        /// <param name="requestBaseUrl"></param>
        /// <param name="paras"></param>
        /// <param name="oauth"></param>
        /// <returns></returns>
        string GetHomePage(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 转载微博
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string Forward(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        ///发表回复
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string Reply(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        ///发表回复
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string RePost(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 对一条微博进行评论
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string AddComment(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 根据name获取用户信息
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string GetOtherUserInfo(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 发表新微博
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string WeiBoAdd(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 发表新微博
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string WeiBoAddWithPic(OAuthBase oauth, TwitterType tt,List<QueryStringParameter> files, params QueryStringParameter[] paras);

        /// <summary>
        /// 根据name获取用户信息
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string GetCurrentUserInfo(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 收听某个用户 
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string AddFriends(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 特别收听某个用户
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string AddSpecialFriends(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 邀请好友
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string InviteFriends(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 其他帐户听众列表 
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string GetOtherUserFans(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 其他帐户特别收听的人列表 
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string GetOtherUserSpecialFans(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 其他帐户收听的人列表
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string GetOtherUserIdol(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 登陆帐户听众列表 
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string GetCurrentUserFans(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 登陆帐户收听的人列表
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string GetCurrentUserIdol(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 我可能认识的人
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string GetMayKownPerson(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 获取名人列表
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string GetFamousList(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 获取系统推荐用户
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string GetHotPerson(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);

        /// <summary>
        /// 根据内容获取推荐用户
        /// </summary>
        /// <param name="oauth"></param>
        /// <param name="tt"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        string GetMayKownPersonByContent(OAuthBase oauth, TwitterType tt, params QueryStringParameter[] paras);




    }
}
